package com.dylan.structure.queue;

/**
 * 队列顶层接口
 *
 * @author zhangshaojian
 * @date 2022/7/12 10:56
 */
public interface MyQueue<T> {

    /**
     * 容器是否已满
     *
     * @return boolean
     */
    boolean isFull();

    /**
     * 容器是否已空
     *
     * @return boolean
     */
    boolean isEmpty();

    /**
     * 返回容器中元素的数量
     *
     * @return int
     */
    int count();

    /**
     * 存入元素
     *
     * @param t 元素
     */
    void put(T t);

    /**
     * 取出最前的元素
     *
     * @return T
     */
    T take();

    /**
     * 查看最前的元素
     *
     * @return T
     */
    T peek();

    /**
     * 清空容器中的所有元素
     *
     * @return void
     */
    void clear();

    /**
     * 打印所有元素
     *
     * @return void
     */
    void showAll();
}
